package com.koi.system.config.init;

import com.koi.system.service.dictdata.SysDictDataService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 平常开发中有可能需要实现在项目启动后执行的功能，SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口，
 * 实现功能的代码放在实现的run方法中也就是项目一启动之后，就立即需要执行的动作
 * 多实现类执行顺序，可以通过注解@Order控制实现类执行顺序,其中Order的值越小越先被执行；
 * @author ･ᴗ･
 */
@Slf4j
@Order(1)
@Component
public class ServerCommandLineRunner implements CommandLineRunner {

    @Resource
    private SysDictDataService sysDictDataService;

    @Override
    public void run(String... args) {
        // 逻辑代码[字典数据缓存]
        sysDictDataService.listDictCacheRedis();
        log.info("CommandLineRunner项目启动后立即执行，重新获取缓存------>[推荐使用]");
    }

}
